package com.wn.main.ui.category.adapter

import android.content.Context
import android.view.LayoutInflater
import android.view.ViewGroup
import com.blankj.utilcode.util.ConvertUtils
import com.wn.common.model.CategorySecondItem
import com.wn.common.provider.MainServiceProvider
import com.wn.framework.adapter.BaseBindViewHolder
import com.wn.framework.adapter.BaseRecyclerViewAdapter
import com.wn.framework.utils.ViewUtils
import com.wn.main.databinding.LayoutCategoryViewItemBinding
import dagger.hilt.android.qualifiers.ActivityContext
import javax.inject.Inject

/**
 * @Author: wn
 * @Date: 2025/4/15 17:15
 * @Description: 分类页 右侧 内容 List 的 Adapter
 */
// 多次 复用 不使用 作用域
class CategoryViewAdapter @Inject constructor(@ActivityContext private val context: Context) :
  BaseRecyclerViewAdapter<CategorySecondItem, LayoutCategoryViewItemBinding>() {
  /**
   * 子类通过 xml实现 ViewBinding，父类提供了 LayoutInflater ，viewType
   * 可以根据不同的 viewType传递不同的 viewBinding -- when
   */
  override fun getViewBinding(
    layoutInflater: LayoutInflater,
    parent: ViewGroup,
    viewType: Int,
  ): LayoutCategoryViewItemBinding =
    LayoutCategoryViewItemBinding.inflate(layoutInflater, parent, false)

  /**
   * 子类重写该方法绑定数据
   * 重写 [getViewBinding] 即可实现不同ViewHolder传递
   */
  override fun setViewBinding(
    holder: BaseBindViewHolder<LayoutCategoryViewItemBinding>,
    item: CategorySecondItem?,
    position: Int,
  ) {
    item?.apply {
      holder.binding.categorySecondItem = this
      // 点击整个 Item 去详情页
      holder.itemView.setOnClickListener {
        if (this.link.isNullOrEmpty()) return@setOnClickListener
        MainServiceProvider.toArticleDetail(context, this.link!!, this.title ?: "")
      }
    }
    // 设置 View 圆角
    ViewUtils.setClipViewCornerRadius(holder.binding.tvTitle, ConvertUtils.dp2px(8.0F))
  }
}